Selected data structures and process logic combine to form a useful computing system. This computing system may further contain useful sub-systems, each of which is re-usable and belongs to one of the following three architectural tiers.
First Tier:
The first tier contains database objects and processes that are common to most commercial data processing computer systems. This level is the infrastructure that supports capabilities such as user authentication and access security, workflow, document management, data journaling, information regarding people and organizations, address management, etc.
Second Tier:
The second tier contains database objects and processes that are common to most business administration processes regardless of specific commercial industry. This level supports capabilities such as automated correspondence, customer billing, cash processing, general ledger accounting, etc.
Third Tier:
The third tier contains database objects and processes that are specific to a commercial business such as the insurance industry. Many of these system resources are shareable among different insurance products, but some are specific to an insurance product line. This level includes capabilities such as calculation of health insurance premium rates or submitted claim benefit determination. Capabilities that are specific to a business and/or product can often be added as plug-ins to the current architecture (e.g. banking industry—calculation of savings account interest earnings).
FIG. 1 is a block diagram of a responsibility-based layering system 10 illustrating prior art hierarchical dependence between layers. System 10 has a presentation layer 12, a business logic layer 14 and a data access layer 16. Business logic layer 14 and data access layer 16 are illustratively shown within a database 24. Data access layer 16 is illustratively shown with tables 26. Business logic layer 14 is illustratively shown with business logic 20 that includes a data selection function 22 within stored procedures 28 of database 24. Data selection function 22 may, for example, select certain data items from data access layer 16 for display to a user. Presentation layer 12 includes presentation logic 18 that controls the formatting of visual objects used to input or display data; it is illustratively shown generating view of data 19, which represents a view of the data items selected by business logic layer 14 for presentation to the user.
In particular, presentation logic 18 controls the formatting of visual objects used to input or display data. This includes forms (display screens), reports, e-mail, and other presentation methods. Business logic 20, within business logic layer 14, that typically controls process flow, validates data values, calculates values, etc. As much as possible, program code that supports business logic 20 is separated from the program code that supports presentation logic 18. Functionality of business logic 20 is often included within stored procedures of database 24 or in shared libraries. Data access layer 16 facilitates storage of business data structures and data separate from program logic. Business data often describe rules that define how processes are to be performed. Program logic changes are not normally required to support such things as product changes because system 10 is designed to be “data driven”. Data access layer 16 includes logic that enforces data integrity constraints upon data stored within tables 26. Database triggers associated with tables 26 perform this logic.
In an example of operation, data selection function 22 invokes one or more stored procedures of database 24 to retrieve certain information from tables 26 that is then displayed to a user by presentation logic 18 of presentation layer 12. If implementation of database 24 within data access layer 16 changes (e.g., a different database is used), data selection function 22 of business logic layer 14 also needs to change since underlying structure of tables 26 may introduce new data selection criteria. Such changes typically cost development time for business logic layer 14, even though business logic layer 14 selects the same data from the database.